luci-base: form.js: reuse JSONMap data provider in GridSection modals
authorJo-Philipp Wich <[email protected]>
Sat, 4 Feb 2023 21:15:42 +0000 (22:15 +0100)
committerJo-Philipp Wich <[email protected]>
Sat, 4 Feb 2023 21:23:27 +0000 (22:23 +0100)
Reuse the same data provider as the parent JSONMap instance in order
to avoid inadvertently mangling the form data when saving the modal
edit dialog.

Fixes: bb9ede238a ("luci-base: form.js: reuse JSONMap data provider in GridSection modals")
Signed-off-by: Jo-Philipp Wich <[email protected]>
(cherry picked from commit dd47f3f6742a6d80221b75aa7b6ea27eca2bb535)

modules/luci-base/htdocs/luci-static/resources/form.js

index 5e31dc0dbe7749fdacedcc28f99522f69362f313..103173e1c88481614d2c77813e32d8be622c05d3 100644 (file)
@@ -3213,10 +3213,13 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
 
                        var m;
 
-                       if (parent instanceof CBIJSONMap)
-                               m = new CBIJSONMap(parent.data.data, null, null);
-                       else
+                       if (parent instanceof CBIJSONMap) {
+                               m = new CBIJSONMap(null, null, null);
+                               m.data = parent.data;
+                       }
+                       else {
                                m = new CBIMap(parent.config, null, null);
+                       }
 
                        var s = m.section(CBINamedSection, section_id, this.sectiontype);